# 类中的私有成员: 私有类的静态属性, 私有对象属性,私有方法


# 私有静态属性
# class B:
#     school_name = '老男孩教育'
#
#
# class A(B):
#
#     class_name = 'python23'
#
#     def func(self):
#         print(self.class_name)
#
# obj = A()
# print(obj.class_name)
# obj.func()
# print(obj.school_name)

# 1. 对于类的公有静态属性,类的外部,类的内部,派生类都可以访问.

# class B:
#     school_name = '老男孩教育'
#     __consc_edu = '良心教育'
#
# class A(B):
#
#     class_name = 'python23'
#     __girlnum = '1个'
#
#     def func(self):
#         # print(self.class_name)
#         # print(self.__girlnum)
#         print(self.__consc_edu)
# obj = A()
# 私有静态属性: 类外部不能访问
# print(obj.__girlnum)
# print(A.__girlnum)
# 私有静态属性: 类内部可以访问
# obj.func()  # 派生类不可访问


# 2. 对象的私有属性

# class B:
#     school_name = '老男孩教育'
#     __consc_edu = '良心教育'
#
#     def __init__(self, weight):
#         self.__weight = weight
# class A(B):
#
#     def __init__(self, name, age, weight):
#         super().__init__(weight)
#         self.name = name
#         self.__age = age
#
#     def func(self):
#         # print(self.__age)  # 类的内部可以使用
#         print(self.__weight)  # 派生类中也不可访问


# obj = A('马倩',18, 180)
# # print(obj.__age)  # 类的外部不能访问
# obj.func()

# 如果想设定一些私有的或者是不想让类外面用到,密码,加密方式,等设置成私有成员.

# 拓展: 私有成员除了在类内部,当真访问不到么?

#
# class A:
#     __girlnum = '1个'
#

# print(A.__dict__)

# python中所有的私有成员: 就是在私有成员前面加上 _类名而已.
# print(A._A__girlnum)  # 千万不要这么去访问!!!